package com.god530.l01array;

import java.util.HashMap;

// HighArray.java
// demonstrated array class with high-level interface
// to run this program: c:> java HighArrayApp
public class HighArray {

	private long[] a;        //ref to array a
	private int nElems;      // number of data items
	///////////////////////////////////////////////
	public HighArray(int max) {
		a = new long[max];   // create the array
		nElems = 0;          // no items yet
	}
	// ----------------------------------------
	public void insert(long value) {
		a[nElems] = value;   // insert it
		nElems++;            // increment size
	}
	
	//------------------------------------------
	public boolean find(long searchKey)
	{                                  // find specified value
		int j;
		for (j = 0; j < nElems; j++) { // for each element
			if(a[j] == searchKey)      // found item
				break;                 // exit loop before end
		}
		if(j == nElems) {
			return false;
		} else {
			return true;
		}  // end find()
	}
	//---------------------------------------
	public boolean delete(long value) {
		int j;
		for (j = 0; j < nElems; j++) {  // look for it
			if(value == a[j])
				break;
		}
		if(j == nElems)  // can't find it
			return false;
		else {
			for (int k = j; k < nElems; k++) {
				a[k] = a[k+1];
			}
			nElems--;
			return true;
		}
	}
	// --------------------------------------
	public void display() {  // display array contents
		for (int j = 0; j < nElems; j++) {
			System.out.print(a[j] + " ");
		}
		System.out.println("");
	}
	
	
	public static void main(String[] args) {
		int maxSize = 100;       // array size
		HighArray arr;           // reference to array
		arr = new HighArray(maxSize);    // create to array
		
		arr.insert(77);
		arr.insert(99);
		arr.insert(44);
		arr.insert(55);
		arr.insert(22);
		arr.insert(88);
		arr.insert(11);
		arr.insert(00);
		arr.insert(66);
		arr.insert(33);
		
		arr.display();            // display items
		
		int searchKey = 35;
		if (arr.find(searchKey)) {
			System.out.println("Found " + searchKey);
		} else {
			System.out.println("Can't find " + searchKey);
		}
		
		arr.delete(00);  // delete 3 items
		arr.delete(55);
		arr.delete(99);
		
		arr.display();
		
	} // end main
	
}// end class HighArray
